基于FPGA的多路光电编码器数据采集系统
2006/6/26 9:12:00
1.哈尔滨工业大学自动化测试与控制系 2.哈尔滨师范大学物理系 [摘 要]:介绍了一种基于现场可编程门阵列(FPGA)的多路光电编码器数据采集系统,包括其功能、原理、软件编程和硬件实现电路。描述了该电路的4个主要功能:四倍频细分、辨向、计数及串行通讯。根据波形的跳沿实现四倍频细分;通过对波形相位的分析,采用基于相位变化的设计原理实现辨向。整个系统在QuartusⅡ软件环境下实现编程,应用Altera公司的EPFl0K20TCl44-3型芯片作为硬件载体,角度分辨力可达广1。最后,给出了详细的编程和仿真波形。 0 引 言 现今,光电编码器被越来越多地用于角度的测量,由于它在测量角度方面的优越性,已成为一种重要的角度传感器,本设计中的角度传感器是采用光电编码器来实现的。以往对单路角度传感器(光电编码器)数据信号进行四倍频以及辨向处理时,多采用门级电路搭建的电路板,单片机和FPGA编程来实现。其中,使用电路板或单片机的方法通用性差、编译复杂、电路板庞大、而且,响应其他事件的实时性变差,不适合用于运算速度快,且多路输入的数据采集计算任务。随着电子设计技术的飞速发展,用户现场可编程门阵列(FPGA)的复杂程度越来越高,其所具备的功能也越来越多,芯片也向小型化发展,逐步成为复杂数字硬件电路设计的理想首选。FPGA/CPLD既继承了ASIC的大规模、高集成度、高可靠性的优点、又克服了普通ASIC设计周期长、投资大、灵活性差的缺点。FPGA的集成度很高,可完成极其复杂的时序和组合逻辑电路功能,适用于高速、高密度的高端数字逻辑电路设计领域。 1 方案设计 本系统是基于FPGA的数据采集电路,其多路输入信号来自6个高精度角度传感器——光电编码器。每个角度传感器均分别输出两路周期相同、相位差为90°的方波信号以及一个零位信号,设其中一个角度传感器输出的方波信号为A和B,零位信号为Z。当需要对计数器进行正计数时,A信号的上升沿及下降沿均超前B信号1/4周期;反之,当需要对计数器进行逆计数时,A信号的上升沿及下降沿均滞后B信号1/4周期。根据A信号相对于B信号的超前与滞后,计数器即可相应地做出加计数或减计数的判断。 图1给出了角度传感器有信号输入时A,B信号的变化情况。图中,前半部分为正计数,后半部分为反计数。根据接收到的输入信号相位差和A,B信号变化的周期数来使用计数器进行计数,就可以测算出角度传感器传来的数据的具体信息。 本文中,数据采集系统要完成的主要任务为:利用PP-GA芯片完成六路角度传感器信号处理、四倍频及判向功能,设计24位计数器,实现数据的锁存、清零以及数据传输,系统功能框图如图2所示 图2 系统功能框图 图中,A1~A6,Bl~B6为六路角度传感器输出的相位差为90°的方波信号、Z1~Z6为零位信号、数据为串行输出、OE为使能信号,控制锁存器存储数据和输出数据。 本设计中,角度传感器提供输入信号,其精度要求高,若对角度的测量要求分辩力到1″甚至0.1″,则信号频率相对较高。根据设计要求,估算整个电路所需要的管脚和宏单元的个数,以及以后系统的可升级空间,本设计选用芯片EPFIOK20TCl44-3。它是Altera公司FLEX1OK系列产品之一,是一种嵌入式可编程逻辑器件,采用CMOSSRAM制造工艺,使用SRAM来存储编程数据,具有在系统中可编程特性。EPFl0K20TCl44—3具有高密度、高速度、低功耗等特点。芯片内含有专用进位链,级联链以及快速通道,故其互连方式十分灵活。 2具体电路设计 本系统的主要功能通过Altera公司Quartus II软件系统提供的集成化文本编辑程序实现,即硬件描述语言输入方式。该方式适合于输入和编辑诸如VHDL,Verilog HDL,Altera公司的AHDL等硬件描述语言的设计输入文件。硬件描述语言输入方式的特点是效率较高、结果也较容易仿真、信号观察也比较方便,而且,在不同的设计输入库之间转换非常方便,下面介绍系统主要电路的设计。 2.1 实现四倍频、辨向和计数 以一路角度传感器所发出的方波信号为例,如图1所示,通过对A和B信号的上升沿和下降沿进行计数实现四频;并通过在每个跳变沿判断A与B的电平高低来实现辨向,真值表如表1,表2所示。 表1 A信号跳变真值表 表2 B信号跳变真值表 由表1、表2可知,当信号A和B发生跳变时,对A和B进行异或逻辑运算,即可判断对计数器进行加操作还是减操作。流程图如图3所示。 图3 辨向与计数流程图 2.2 数据锁存 方波信号经过四倍频并计数后所得到的6组数据,当需要向上位机传输时,因为内部各计数单元工作属于动态过程,因此,在向外部传输数据时,需先将6组数据分别存人6个锁存器中再读取数据,以保证读出稳定的数据。在本设计中,锁存器是由VHDL语言描述的同步锁存器。所谓同步锁存器指的是复位和加载功能全部与时钟同步,复位端的优先级较高。在数字系统设计时,采用完全同步的锁存器,可以避免时序错误。 2.3 数据传输 串行输出口采用标准的RS—232协议,6个锁存器输出的数据将先存人FIFO(先进先出寄存器),然后,通过串口将数据发送到PC。 数据串行输出如图4所示。 串行输出的主要参数的选择:波特率为9600bit/s,8位有效位、无奇偶校验位、1位停止位。串行通信中,必须有时钟脉冲信号对所传送的数据进行定位和同步控制,设计中,采用的时钟频率时波特率的2倍(19200bit/s)。发送过程:串口模块初始状态是等待状态,接收到触发信号fifo-rd则进入发送过程,先发送起始位,再发送8位比特数,每位宽度为2个周期,当一个字节发送完毕后,发送一个停止位,回到等待状态。 3 调试与仿真 如图5所示,countl~count6为六路角度传感器输入信号经过四倍频、辨向、计数后的仿真波形。Zl~Z6为角度传感器输入的零位信号,OE为输出使能信号。其中,第二路仿真角度传感器反向旋转的过程,所以,A2信号滞后B2信号1/4周期,count2计数器为负值。本系统仿真中使用的方波频率为19.1MHz,而所使用的角度传感器每旋转一周输出的方波个数为1 296000个,按照每秒旋转一周计算,方波信号频率为1.2MHz,仿真信号足要求。 图5 输出仿真波形图 4 结 论 本设计经过仿真、编译实现后,将代码下载至EPC1441可编程配置芯片,属于主动配置模式。在接口模块上电后,EPC1441自动对EPFl0K20TCl44-3芯片进行配置。该芯片成功地完成了对六自由度坐标测量系统输出信号的处理,性能稳定可靠。如果在此设计的基础上载译码驱动等外围电路,即可直接与PC机连接,或者加上显示电路单独使用。
提交
查看更多评论
其他资讯
智光节能内蒙古阿拉善左旗瀛海建材余热发电机组首次启动成功
智光电气台州电厂给水泵系统节能改造项目成功投运
智光节能荣登2014年度全国节能服务公司百强榜第五位
索引程序编程凸轮表
奥越信300系列PLC手册